﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, DesignerCategory("code"), XmlType(Namespace="http://www.onvif.org/ver10/schema"), GeneratedCode("svcutil", "3.0.4506.2152"), DebuggerStepThrough]
    public class IPv6Configuration
    {
        private bool acceptRouterAdvertField;
        private bool acceptRouterAdvertFieldSpecified;
        private XmlAttribute[] anyAttrField;
        private IPv6DHCPConfiguration dHCPField;
        private IPv6ConfigurationExtension extensionField;
        private PrefixedIPv6Address[] fromDHCPField;
        private PrefixedIPv6Address[] fromRAField;
        private PrefixedIPv6Address[] linkLocalField;
        private PrefixedIPv6Address[] manualField;

        [XmlElement(Order=0)]
        public bool AcceptRouterAdvert
        {
            get
            {
                return this.acceptRouterAdvertField;
            }
            set
            {
                this.acceptRouterAdvertField = value;
            }
        }

        [XmlIgnore]
        public bool AcceptRouterAdvertSpecified
        {
            get
            {
                return this.acceptRouterAdvertFieldSpecified;
            }
            set
            {
                this.acceptRouterAdvertFieldSpecified = value;
            }
        }

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(Order=1)]
        public IPv6DHCPConfiguration DHCP
        {
            get
            {
                return this.dHCPField;
            }
            set
            {
                this.dHCPField = value;
            }
        }

        [XmlElement(Order=6)]
        public IPv6ConfigurationExtension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlElement("FromDHCP", Order=4)]
        public PrefixedIPv6Address[] FromDHCP
        {
            get
            {
                return this.fromDHCPField;
            }
            set
            {
                this.fromDHCPField = value;
            }
        }

        [XmlElement("FromRA", Order=5)]
        public PrefixedIPv6Address[] FromRA
        {
            get
            {
                return this.fromRAField;
            }
            set
            {
                this.fromRAField = value;
            }
        }

        [XmlElement("LinkLocal", Order=3)]
        public PrefixedIPv6Address[] LinkLocal
        {
            get
            {
                return this.linkLocalField;
            }
            set
            {
                this.linkLocalField = value;
            }
        }

        [XmlElement("Manual", Order=2)]
        public PrefixedIPv6Address[] Manual
        {
            get
            {
                return this.manualField;
            }
            set
            {
                this.manualField = value;
            }
        }
    }
}

